#ifndef IMEDIA_TRANSPORT_HANDLER_H_
#define IMEDIA_TRANSPORT_HANDLER_H_

#include "HRTSAEngineParam.h"

namespace huawei {
namespace rtsap2p {
class IMediaTransportEventHandler
{
public:
    virtual void onLoginResult(const char* userId, const char* roomId, HRTSAP2pLoginResult resultCode, const char* resultMsg) {}
	virtual void onPeerConnectionChangedNotify(const char* userId, const char* roomId, HRTSAP2pConnState state) {}
    virtual void onError(int code, const char* msg) {}
    virtual void onWarning(int code, const char* msg) {}
    virtual void onConnectionChangedNotify(int state, int reason) {}
	virtual void onRequestKeyFrame() {}
	virtual void onLocalVideoBitrateUpdate(unsigned int targetEncBitrate) {}
	virtual void onRemoteVideoFrameData(const unsigned char* frame, unsigned int length, 
		huawei::rtsa::HRTSAFrameVideoOption option) {}
	virtual void onRemoteAudioFrameData(const unsigned char* frame, unsigned int length) {}
    virtual void onRemoteVideoStateChangedNotify(huawei::rtsa::HRTSARemoteVideoStreamState state, 
        huawei::rtsa::HRTSARemoteVideoStreamStateReason reason) { }
    virtual void onRemoteAudioStateChangedNotify(huawei::rtsa::HRTSARemoteAudioStreamState state,
        huawei::rtsa::HRTSARemoteAudioStreamStateReason reason) { }
    virtual int onAudioEncode(huawei::rtsa::HRTSAAudioEncStru* pstEncPrm) { return 0; }
    virtual int onAudioDecode(huawei::rtsa::HRTSAAudioDecStru* pstDecPrm) { return 0; }
    virtual void onRemoteCommandPacket(const char *userId, const unsigned char *packet, unsigned int length) { }
    virtual void onTransportReady() {}
    virtual void onTransportClosed() {}
    virtual void resetEarlyState() {}
};
} // namespace rtsap2p
} // namespace huawei

#endif // IMEDIA_TRANSPORT_HANDLER_H_